<!DOCTYPE html><html lang="zh-CN" data-theme="light"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"><title>MoneyLee’s Blog - 个人博客</title><meta name="author" content="李财"><meta name="copyright" content="李财"><meta name="format-detection" content="telephone=no"><meta name="theme-color" content="#ffffff"><meta name="description" content="开发者">
<meta property="og:type" content="website">
<meta property="og:title" content="MoneyLee’s Blog">
<meta property="og:url" content="https://moneylee.gitee.io/myblog/page/2/index.html">
<meta property="og:site_name" content="MoneyLee’s Blog">
<meta property="og:description" content="开发者">
<meta property="og:locale" content="zh_CN">
<meta property="og:image" content="https://i.loli.net/2021/02/24/5O1day2nriDzjSu.png">
<meta property="article:author" content="李财">
<meta name="twitter:card" content="summary">
<meta name="twitter:image" content="https://i.loli.net/2021/02/24/5O1day2nriDzjSu.png"><link rel="shortcut icon" href="/myblog/img/favicon.png"><link rel="canonical" href="https://moneylee.gitee.io/myblog/page/2/"><link rel="preconnect" href="//cdn.jsdelivr.net"/><link rel="preconnect" href="//busuanzi.ibruce.info"/><link rel="stylesheet" href="/myblog/css/index.css"><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free/css/all.min.css" media="print" onload="this.media='all'"><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fancyapps/ui/dist/fancybox.css" media="print" onload="this.media='all'"><script>const GLOBAL_CONFIG = { 
  root: '/myblog/',
  algolia: undefined,
  localSearch: undefined,
  translate: undefined,
  noticeOutdate: undefined,
  highlight: {"plugin":"highlighjs","highlightCopy":true,"highlightLang":true,"highlightHeightLimit":false},
  copy: {
    success: '复制成功',
    error: '复制错误',
    noSupport: '浏览器不支持'
  },
  relativeDate: {
    homepage: false,
    post: false
  },
  runtime: '',
  date_suffix: {
    just: '刚刚',
    min: '分钟前',
    hour: '小时前',
    day: '天前',
    month: '个月前'
  },
  copyright: undefined,
  lightbox: 'fancybox',
  Snackbar: undefined,
  source: {
    justifiedGallery: {
      js: 'https://cdn.jsdelivr.net/npm/flickr-justified-gallery@2/dist/fjGallery.min.js',
      css: 'https://cdn.jsdelivr.net/npm/flickr-justified-gallery@2/dist/fjGallery.min.css'
    }
  },
  isPhotoFigcaption: false,
  islazyload: false,
  isAnchor: false
}</script><script id="config-diff">var GLOBAL_CONFIG_SITE = {
  title: 'MoneyLee’s Blog',
  isPost: false,
  isHome: true,
  isHighlightShrink: false,
  isToc: false,
  postUpdate: '2022-02-21 16:43:45'
}</script><noscript><style type="text/css">
  #nav {
    opacity: 1
  }
  .justified-gallery img {
    opacity: 1
  }

  #recent-posts time,
  #post-meta time {
    display: inline !important
  }
</style></noscript><script>(win=>{
    win.saveToLocal = {
      set: function setWithExpiry(key, value, ttl) {
        if (ttl === 0) return
        const now = new Date()
        const expiryDay = ttl * 86400000
        const item = {
          value: value,
          expiry: now.getTime() + expiryDay,
        }
        localStorage.setItem(key, JSON.stringify(item))
      },

      get: function getWithExpiry(key) {
        const itemStr = localStorage.getItem(key)

        if (!itemStr) {
          return undefined
        }
        const item = JSON.parse(itemStr)
        const now = new Date()

        if (now.getTime() > item.expiry) {
          localStorage.removeItem(key)
          return undefined
        }
        return item.value
      }
    }
  
    win.getScript = url => new Promise((resolve, reject) => {
      const script = document.createElement('script')
      script.src = url
      script.async = true
      script.onerror = reject
      script.onload = script.onreadystatechange = function() {
        const loadState = this.readyState
        if (loadState && loadState !== 'loaded' && loadState !== 'complete') return
        script.onload = script.onreadystatechange = null
        resolve()
      }
      document.head.appendChild(script)
    })
  
      win.activateDarkMode = function () {
        document.documentElement.setAttribute('data-theme', 'dark')
        if (document.querySelector('meta[name="theme-color"]') !== null) {
          document.querySelector('meta[name="theme-color"]').setAttribute('content', '#0d0d0d')
        }
      }
      win.activateLightMode = function () {
        document.documentElement.setAttribute('data-theme', 'light')
        if (document.querySelector('meta[name="theme-color"]') !== null) {
          document.querySelector('meta[name="theme-color"]').setAttribute('content', '#ffffff')
        }
      }
      const t = saveToLocal.get('theme')
    
          if (t === 'dark') activateDarkMode()
          else if (t === 'light') activateLightMode()
        
      const asideStatus = saveToLocal.get('aside-status')
      if (asideStatus !== undefined) {
        if (asideStatus === 'hide') {
          document.documentElement.classList.add('hide-aside')
        } else {
          document.documentElement.classList.remove('hide-aside')
        }
      }
    
    const detectApple = () => {
      if(/iPad|iPhone|iPod|Macintosh/.test(navigator.userAgent)){
        document.documentElement.classList.add('apple')
      }
    }
    detectApple()
    })(window)</script><meta name="generator" content="Hexo 6.0.0"></head><body><div id="sidebar"><div id="menu-mask"></div><div id="sidebar-menus"><div class="avatar-img is-center"><img src="https://i.loli.net/2021/02/24/5O1day2nriDzjSu.png" onerror="onerror=null;src='/img/friend_404.gif'" alt="avatar"/></div><div class="site-data is-center"><div class="data-item"><a href="/myblog/archives/"><div class="headline">文章</div><div class="length-num">46</div></a></div><div class="data-item"><a href="/myblog/tags/"><div class="headline">标签</div><div class="length-num">0</div></a></div><div class="data-item"><a href="/myblog/categories/"><div class="headline">分类</div><div class="length-num">10</div></a></div></div><hr/><div class="menus_items"><div class="menus_item"><a class="site-page" href="/myblog/"><i class="fa-fw fas fa-home"></i><span> 主页</span></a></div><div class="menus_item"><a class="site-page" href="/myblog/archives/"><i class="fa-fw fas fa-archive"></i><span> 时间轴</span></a></div><div class="menus_item"><a class="site-page" href="/myblog/tags/"><i class="fa-fw fas fa-tags"></i><span> 标签</span></a></div><div class="menus_item"><a class="site-page" href="/myblog/categories/"><i class="fa-fw fas fa-folder-open"></i><span> 分类</span></a></div><div class="menus_item"><a class="site-page group" href="javascript:void(0);"><i class="fa-fw fas fa-list"></i><span> 影音</span><i class="fas fa-chevron-down"></i></a><ul class="menus_item_child"><li><a class="site-page child" href="/myblog/music/"><i class="fa-fw fas fa-music"></i><span> 音乐</span></a></li><li><a class="site-page child" href="/myblog/movies/"><i class="fa-fw fas fa-video"></i><span> 电影</span></a></li></ul></div><div class="menus_item"><a class="site-page" href="/myblog/link/"><i class="fa-fw fas fa-link"></i><span> 友链</span></a></div><div class="menus_item"><a class="site-page" href="/myblog/about/"><i class="fa-fw fas fa-heart"></i><span> 关于</span></a></div></div></div></div><div class="page" id="body-wrap"><header class="full_page" id="page-header" style="background-image: url('https://i.loli.net/2019/05/22/5ce53eb6dc82757840.jpg')"><nav id="nav"><span id="blog_name"><a id="site-name" href="/myblog/">MoneyLee’s Blog</a></span><div id="menus"><div class="menus_items"><div class="menus_item"><a class="site-page" href="/myblog/"><i class="fa-fw fas fa-home"></i><span> 主页</span></a></div><div class="menus_item"><a class="site-page" href="/myblog/archives/"><i class="fa-fw fas fa-archive"></i><span> 时间轴</span></a></div><div class="menus_item"><a class="site-page" href="/myblog/tags/"><i class="fa-fw fas fa-tags"></i><span> 标签</span></a></div><div class="menus_item"><a class="site-page" href="/myblog/categories/"><i class="fa-fw fas fa-folder-open"></i><span> 分类</span></a></div><div class="menus_item"><a class="site-page group" href="javascript:void(0);"><i class="fa-fw fas fa-list"></i><span> 影音</span><i class="fas fa-chevron-down"></i></a><ul class="menus_item_child"><li><a class="site-page child" href="/myblog/music/"><i class="fa-fw fas fa-music"></i><span> 音乐</span></a></li><li><a class="site-page child" href="/myblog/movies/"><i class="fa-fw fas fa-video"></i><span> 电影</span></a></li></ul></div><div class="menus_item"><a class="site-page" href="/myblog/link/"><i class="fa-fw fas fa-link"></i><span> 友链</span></a></div><div class="menus_item"><a class="site-page" href="/myblog/about/"><i class="fa-fw fas fa-heart"></i><span> 关于</span></a></div></div><div id="toggle-menu"><a class="site-page"><i class="fas fa-bars fa-fw"></i></a></div></div></nav><div id="site-info"><h1 id="site-title">MoneyLee’s Blog</h1><div id="site_social_icons"><a class="social-icon" href="https://gitee.com/moneylee" target="_blank" title="Gitee"><i class="fab fa-github"></i></a><a class="social-icon" href="mailto:licai_1024@hotmail.com" target="_blank" title=""><i class="fas fa-envelope"></i></a><a class="social-icon" href="/myblog/img/mywechat.jpg" target="_blank" title=""><i class="fab fa-weixin"></i></a></div></div><div id="scroll-down"><i class="fas fa-angle-down scroll-down-effects"></i></div></header><main class="layout" id="content-inner"><div class="recent-posts" id="recent-posts"><div class="recent-post-item"><div class="post_cover left"><a href="/myblog/2020/07/09/APP%E5%BC%80%E5%8F%91%E6%89%80%E9%9C%80%E7%9A%84%E6%9D%90%E6%96%99%E6%95%B4%E7%90%86/" title="无题"><img class="post_bg" src="" onerror="this.onerror=null;this.src='/myblog/img/404.jpg'" alt="无题"></a></div><div class="recent-post-info"><a class="article-title" href="/myblog/2020/07/09/APP%E5%BC%80%E5%8F%91%E6%89%80%E9%9C%80%E7%9A%84%E6%9D%90%E6%96%99%E6%95%B4%E7%90%86/" title="无题">无题</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time datetime="2020-07-09T01:06:33.000Z" title="发表于 2020-07-09 09:06:33">2020-07-09</time></span></div><div class="content">融云（即时通讯服务）融云注册地址：地址
#####注册所需的资料：

公司名称 
公司地址
营业执照号
营业执照
法定代表人
公司电话
公司网站
手机号
邮箱

苹果开发者账号开发者中心地址：地址
#####注册所需材料：

注册邮箱（手机号、验证码、密码）
注册苹果账号：Apple ID（邮箱、密码、姓名、生日）
加入开发者
邓白氏编码申请（有则直接填写，没有需要申请）
同事的姓名职位，邮箱，电话，用于验证信息
公司英文名，公司邓白氏编码，公司网址，老板电话，申请者邮箱
只能用visa或者万事达国际信用卡（99美元年费的支付使用）



#####邓白氏编码申请所需资料：

提供清晰的营业执照原件正本照片

公章实体照片

公司中文名称（工商注册的中文名，如有更名请提供更名前和更名后的名称）

英文名（如无正式的英文名按字面翻译，英文名后缀请以Co., Ltd./Inc.结尾）

中文办公地址

英文办公地址

邮编

企业类型

公司有无分公司或办事处（只需填有或无）

公司英文简称或英文商标（如果没有可以填无）

主营业务（一个最主要的业务）

员工人数（请尽量精确,例:10人； ...</div></div></div><div class="recent-post-item"><div class="post_cover right"><a href="/myblog/2020/06/10/CentOS7.4%E5%AE%89%E8%A3%85java8%E7%8E%AF%E5%A2%83/" title="CentOS7.4安装java8环境"><img class="post_bg" src="https://tva1.sinaimg.cn/large/006y8mN6ly1g8vl4zhjzuj30qy0e0gyz.jpg" onerror="this.onerror=null;this.src='/myblog/img/404.jpg'" alt="CentOS7.4安装java8环境"></a></div><div class="recent-post-info"><a class="article-title" href="/myblog/2020/06/10/CentOS7.4%E5%AE%89%E8%A3%85java8%E7%8E%AF%E5%A2%83/" title="CentOS7.4安装java8环境">CentOS7.4安装java8环境</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time datetime="2020-06-10T02:12:02.000Z" title="发表于 2020-06-10 10:12:02">2020-06-10</time></span><span class="article-meta"><span class="article-meta-separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/myblog/categories/%E8%BF%90%E7%BB%B4/">运维</a></span></div><div class="content">https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html

创建安装目录mkdir /usr/local/java/
解压到安装目录tar -zxvf jdk-8u171-linux-x64.tar.gz -C /usr/local/java/
设置环境变量vim /etc/profile
1234export JAVA_HOME=/usr/local/java/jdk1.8.0_171export JRE_HOME=$&#123;JAVA_HOME&#125;/jreexport CLASSPATH=.:$&#123;JAVA_HOME&#125;/lib:$&#123;JRE_HOME&#125;/libexport PATH=$&#123;JAVA_HOME&#125;/bin:$PATH

使环境变量生效
source /etc/profile
添加软连接
ln -s /usr/local/java/jdk1.8.0_171/bin/java /usr/bin/java
检查
java  ...</div></div></div><div class="recent-post-item"><div class="post_cover left"><a href="/myblog/2020/06/09/Java%E9%A1%B9%E7%9B%AE%E5%BC%80%E5%8F%91%E7%AC%94%E8%AE%B0_05/" title="Java项目开发笔记_05"><img class="post_bg" src="https://tva1.sinaimg.cn/large/006y8mN6ly1g8vl4zhjzuj30qy0e0gyz.jpg" onerror="this.onerror=null;this.src='/myblog/img/404.jpg'" alt="Java项目开发笔记_05"></a></div><div class="recent-post-info"><a class="article-title" href="/myblog/2020/06/09/Java%E9%A1%B9%E7%9B%AE%E5%BC%80%E5%8F%91%E7%AC%94%E8%AE%B0_05/" title="Java项目开发笔记_05">Java项目开发笔记_05</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time datetime="2020-06-09T09:14:20.000Z" title="发表于 2020-06-09 17:14:20">2020-06-09</time></span><span class="article-meta"><span class="article-meta-separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/myblog/categories/Java/">Java</a></span></div><div class="content">Spring5.X ⾯面向切⾯面编程 AOP
什么是AOP
Aspect Oriented Program ⾯向切面编程
在不改变原有逻辑上增加额外的功能，比如解决系统层面的问题，或者增加新的功能   


场景
权限控制
缓存
日志处理
事务控制


AOP思想把功能分两个部分，分离系统中的各种关注点
核心关注点
业务的主要功能


横切关注点
非核心、额外增加的功能




好处
减少代码侵入、解耦
可以统一处理横切逻辑
方便添加和切除横切逻辑




AOP⾯向切⾯编程核心概念
横切、通知、连接点、切⼊点、切⾯

横切关注点 

对哪些⽅法进行拦截，拦截后怎么处理，这些就叫横切关注点
比如 权限认证、⽇志、事物


通知 Advice

在特定的切⼊点上执⾏的增强处理  
记录日志，控制事务 ，提前编写好通用的模块，需要的地⽅直接调⽤


连接点 JointPoint

要用通知的地方，业务流程在运⾏过程中需要插入切面的具体位置 
 ⼀般是方法的调用前后，全部方法都可以是连接点
只是概念，没啥特殊  


切入点 Pointcut 

不能全部⽅法都是连接点，通过特定的规则来筛选 ...</div></div></div><div class="recent-post-item"><div class="post_cover right"><a href="/myblog/2020/06/08/Java%E9%A1%B9%E7%9B%AE%E5%BC%80%E5%8F%91%E7%AC%94%E8%AE%B0_03/" title="Java项目开发笔记_03"><img class="post_bg" src="https://tva1.sinaimg.cn/large/006y8mN6ly1g8vl4zhjzuj30qy0e0gyz.jpg" onerror="this.onerror=null;this.src='/myblog/img/404.jpg'" alt="Java项目开发笔记_03"></a></div><div class="recent-post-info"><a class="article-title" href="/myblog/2020/06/08/Java%E9%A1%B9%E7%9B%AE%E5%BC%80%E5%8F%91%E7%AC%94%E8%AE%B0_03/" title="Java项目开发笔记_03">Java项目开发笔记_03</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time datetime="2020-06-08T11:19:10.000Z" title="发表于 2020-06-08 19:19:10">2020-06-08</time></span><span class="article-meta"><span class="article-meta-separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/myblog/categories/Java/">Java</a></span></div><div class="content">SpringBoot2.x定时任务schedule讲解
使用场景：

某个时间处理某个任务
发邮件、发短信等
消息提醒
订单通知
统计报表系统
…


常见定时任务

Java自带的java.util.Timer类配置比较麻烦，时间延后问题
Quartz框架：配置更简单，xml或直接适合分布式或大型调度作业
SpringBoot框架自带


SpringBoot使用注解方式开启定时任务

启动类里面 @EnableScheduling开启你定时任务，自动扫描
定时任务业务类，加注解 @Component被容器扫描
定时执行的方法加上注解 @Scheduled(fixedRate=2000) 定期执行一次


SpringBoot常用定时任务表达式配置和在线生成器

cron定时任务表达式 @Scheduled(cron=”*/1 * * * * *”)表示每秒
 Cron在线工具


SpringBoot2.x异步任务EnableAsync
使用场景：

适用于处理log、发送邮件、短信… 等等
下单接口 -&gt; 查库存 1000
余额校验 15000
风控用户 1000
启动类里 ...</div></div></div><div class="recent-post-item"><div class="post_cover left"><a href="/myblog/2020/06/08/Java%E9%A1%B9%E7%9B%AE%E5%BC%80%E5%8F%91%E7%AC%94%E8%AE%B0_04/" title="Java项目开发笔记_04"><img class="post_bg" src="https://tva1.sinaimg.cn/large/006y8mN6ly1g8vl4zhjzuj30qy0e0gyz.jpg" onerror="this.onerror=null;this.src='/myblog/img/404.jpg'" alt="Java项目开发笔记_04"></a></div><div class="recent-post-info"><a class="article-title" href="/myblog/2020/06/08/Java%E9%A1%B9%E7%9B%AE%E5%BC%80%E5%8F%91%E7%AC%94%E8%AE%B0_04/" title="Java项目开发笔记_04">Java项目开发笔记_04</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time datetime="2020-06-08T11:19:10.000Z" title="发表于 2020-06-08 19:19:10">2020-06-08</time></span><span class="article-meta"><span class="article-meta-separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/myblog/categories/Java/">Java</a></span></div><div class="content">Java项目开发笔记04-0x的代码在：gitee
设计应用的核心数据库表-ER图简介：

在线教育站点速揽 xdclass.net
ER图只是回顾：
实体对象：矩形
属性：椭圆
关系：菱形


核心库表
video
chapter
episode
user
video_order
video_banner




JavaWeb通过原生jdbc访问数据库
原生jdbc访问数据库步骤

加载JDBC驱动程序
创建数据库的连接
创建prepareStatement
执行SQL语句
处理结果集
关闭jdbc对象资源


SpringBoot项目测试原生JDBC连接

加载依赖包

123456789&lt;dependency&gt;			&lt;groupId&gt;org.springframework.boot&lt;/groupId&gt;			&lt;artifactId&gt;spring-boot-starter-jdbc&lt;/artifactId&gt;		&lt;/dependency&gt;		&lt;dependency&gt;			&lt;groupId&gt; ...</div></div></div><div class="recent-post-item"><div class="post_cover right"><a href="/myblog/2020/06/07/Java%E9%A1%B9%E7%9B%AE%E5%BC%80%E5%8F%91%E7%AC%94%E8%AE%B0_02/" title="Java项目开发笔记_02"><img class="post_bg" src="https://tva1.sinaimg.cn/large/006y8mN6ly1g8vl4zhjzuj30qy0e0gyz.jpg" onerror="this.onerror=null;this.src='/myblog/img/404.jpg'" alt="Java项目开发笔记_02"></a></div><div class="recent-post-info"><a class="article-title" href="/myblog/2020/06/07/Java%E9%A1%B9%E7%9B%AE%E5%BC%80%E5%8F%91%E7%AC%94%E8%AE%B0_02/" title="Java项目开发笔记_02">Java项目开发笔记_02</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time datetime="2020-06-07T12:09:12.000Z" title="发表于 2020-06-07 20:09:12">2020-06-07</time></span><span class="article-meta"><span class="article-meta-separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/myblog/categories/Java/">Java</a></span></div><div class="content">
SpringBoot2.x 单元测试
Pox.xml

12345&lt;dependency&gt;    &lt;groupId&gt;org.springframework.boot&lt;/groupId&gt;    &lt;artifactId&gt;spring-boot-starter-test&lt;/artifactId&gt;    &lt;scope&gt;test&lt;/scope&gt;&lt;/dependency&gt;


测试代码

12345678910111213141516//底层用junit SpringJuint4ClassRunner@RunWith(SpringRunner.class)//启动Springboot工程 这里也可以省略括号内的 直接写@SpringBootTest 但是保证工程目录的位置避免出错指定下@SpringBootTest(classes = &#123;XdstudyApplication.class&#125;) public class HelloControllerTest &#123;    @Au ...</div></div></div><div class="recent-post-item"><div class="post_cover left"><a href="/myblog/2020/06/06/Java%E9%A1%B9%E7%9B%AE%E5%BC%80%E5%8F%91%E7%AC%94%E8%AE%B0_01/" title="Java项目开发笔记_01"><img class="post_bg" src="https://tva1.sinaimg.cn/large/006y8mN6ly1g8vl4zhjzuj30qy0e0gyz.jpg" onerror="this.onerror=null;this.src='/myblog/img/404.jpg'" alt="Java项目开发笔记_01"></a></div><div class="recent-post-info"><a class="article-title" href="/myblog/2020/06/06/Java%E9%A1%B9%E7%9B%AE%E5%BC%80%E5%8F%91%E7%AC%94%E8%AE%B0_01/" title="Java项目开发笔记_01">Java项目开发笔记_01</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time datetime="2020-06-06T11:12:02.000Z" title="发表于 2020-06-06 19:12:02">2020-06-06</time></span><span class="article-meta"><span class="article-meta-separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/myblog/categories/Java/">Java</a></span></div><div class="content">
Java项目开发笔记01-03的源码在: gitee
项目开发技术栈
后端开发工具和环境：JDK8 + IDEA + Maven3.x
后端技术栈： Springboot2.x + Spring5 +Mybatis3.x + Mysql + JWT + Guava缓存 + Jmeter5.x压测
前端技术栈：VueCli4.3 + Vue2.6 + VueX + Axios + 移动端CUBE-UI框架 + VSCode
部署：华为云Centos7 + Nginx静态文件服务器 + Nginx部署后端双节点 + 域名配置解析


###Spring5的简单学习
什么是注解：
Java注解是附加在代码中的一些元信息， 用于一些工具在编译，运行时进行解析和使用，起到说明配置的功能
注解本质上继承 Annotation接口，我们可以通过反射获取注解的相关信息，从而做些逻辑操作
springboot里面大量使用了注解，@Controller、 @RestController、 @service、 @Autowire 等

什么是Spring框架：
轻量级的 DI / IoC 和 AOP容器的 ...</div></div></div><div class="recent-post-item"><div class="post_cover right"><a href="/myblog/2020/06/06/Java%20%E5%9F%BA%E4%BA%8ESpringAOP%E5%BF%AB%E9%80%9F%E5%AE%9E%E7%8E%B0%E6%97%A5%E5%BF%97%E6%89%93%E5%8D%B0/" title="Java 基于Spring AOP 快速实现日志打印"><img class="post_bg" src="https://tva1.sinaimg.cn/large/006y8mN6ly1g8vl4zhjzuj30qy0e0gyz.jpg" onerror="this.onerror=null;this.src='/myblog/img/404.jpg'" alt="Java 基于Spring AOP 快速实现日志打印"></a></div><div class="recent-post-info"><a class="article-title" href="/myblog/2020/06/06/Java%20%E5%9F%BA%E4%BA%8ESpringAOP%E5%BF%AB%E9%80%9F%E5%AE%9E%E7%8E%B0%E6%97%A5%E5%BF%97%E6%89%93%E5%8D%B0/" title="Java 基于Spring AOP 快速实现日志打印">Java 基于Spring AOP 快速实现日志打印</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time datetime="2020-06-06T11:12:02.000Z" title="发表于 2020-06-06 19:12:02">2020-06-06</time></span><span class="article-meta"><span class="article-meta-separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/myblog/categories/Java/">Java</a></span></div><div class="content"></div></div></div><div class="recent-post-item"><div class="post_cover left"><a href="/myblog/2020/06/03/iOS%20SnapKit%E8%87%AA%E5%8A%A8%E5%B8%83%E5%B1%80%E6%A1%86%E6%9E%B6%E7%9A%84%E5%AD%A6%E4%B9%A0%E6%95%B4%E7%90%86/" title="iOS SnapKit自动布局框架的学习整理"><img class="post_bg" src="https://tva1.sinaimg.cn/large/006y8mN6ly1g8vl0019wlj31ej0u0x6q.jpg" onerror="this.onerror=null;this.src='/myblog/img/404.jpg'" alt="iOS SnapKit自动布局框架的学习整理"></a></div><div class="recent-post-info"><a class="article-title" href="/myblog/2020/06/03/iOS%20SnapKit%E8%87%AA%E5%8A%A8%E5%B8%83%E5%B1%80%E6%A1%86%E6%9E%B6%E7%9A%84%E5%AD%A6%E4%B9%A0%E6%95%B4%E7%90%86/" title="iOS SnapKit自动布局框架的学习整理">iOS SnapKit自动布局框架的学习整理</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time datetime="2020-06-03T12:44:07.000Z" title="发表于 2020-06-03 20:44:07">2020-06-03</time></span><span class="article-meta"><span class="article-meta-separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/myblog/categories/iOS/">iOS</a></span></div><div class="content">SnapKit知识点整理SnapKit是一种DSL，可在iOS和OS X上简化自动布局。
安装：
Cocoapods: 
123456platform :ios, &#x27;10.0&#x27;use_frameworks!target &#x27;&lt;你的项目名&gt;&#x27; do    pod &#x27;SnapKit&#x27;, &#x27;~&gt; 5.0.0&#x27;end

Carthage:
123$ brew update$ brew install carthagegithub &quot;SnapKit/SnapKit&quot; ~&gt; 5.0.0



使用：
1、实现一个宽高为100，居于当前视图的中心的视图布局，示例代码如下
1234567let testView = UIView()testView.backgroundColor = UIColor.cyanview.addSubview(testView)testView.snp.makeConstraints &#123; (make) in    make.width.hei ...</div></div></div><div class="recent-post-item"><div class="post_cover right"><a href="/myblog/2020/05/18/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD%E5%AD%A6%E4%B9%A0%E6%95%B4%E7%90%86_07Day(Tensorflow%E5%AE%9E%E8%B7%B5)/" title="人工智能学习整理_07Day(Tensorflow实践)"><img class="post_bg" src="https://tva1.sinaimg.cn/large/007S8ZIlly1gfszcmp5uuj30dw09gmxl.jpg" onerror="this.onerror=null;this.src='/myblog/img/404.jpg'" alt="人工智能学习整理_07Day(Tensorflow实践)"></a></div><div class="recent-post-info"><a class="article-title" href="/myblog/2020/05/18/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD%E5%AD%A6%E4%B9%A0%E6%95%B4%E7%90%86_07Day(Tensorflow%E5%AE%9E%E8%B7%B5)/" title="人工智能学习整理_07Day(Tensorflow实践)">人工智能学习整理_07Day(Tensorflow实践)</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time datetime="2020-05-18T12:10:33.000Z" title="发表于 2020-05-18 20:10:33">2020-05-18</time></span><span class="article-meta"><span class="article-meta-separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/myblog/categories/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/">人工智能</a></span></div><div class="content">北京大学 人工智能实践：Tensorflow笔记学习地址
课程概述课程梳理出Tensorflow2搭建优化神经网络的八股，带你逐步完善代码，实现图像识别与股票预测。课程以录像形式讲解知识点，以录屏形式分析源代码，通过助教的Tensorflow笔记实现回顾与扩展。内容包括：深度学习、神经网络的基本概念原理和代码实现示例。
课程大纲第一讲、讲解神经网络的计算过程，搭建出你的第一个神经网络模型；
第二讲、讲解神经网络的优化方法，掌握学习率、激活函数、损失函数和正则化的使用，用Python语言写出5种反向传播优化器（SGD、Momentum、Adagrad、RMSProp、Adam）。
第三讲、分享神经网络的搭建八股，用“六步法”， 不到20行代码，写出手写数字识别训练模型。
第四讲、对神经网络的八股进行扩展，增加自制数据集、数据增强，断点续训，参数提取和acc/loss可视化，最后实现给图识物的应用程序。
第五讲、讲解卷积神经网络，用基础CNN、LeNet、AlexNet、VGGNet、InceptionNet和ResNet实现图像识别。
第六讲、讲解循环神经网络，用基础RNN、LSTM、G ...</div></div></div><nav id="pagination"><div class="pagination"><a class="extend prev" rel="prev" href="/myblog/"><i class="fas fa-chevron-left fa-fw"></i></a><a class="page-number" href="/myblog/">1</a><span class="page-number current">2</span><a class="page-number" href="/myblog/page/3/#content-inner">3</a><span class="space">&hellip;</span><a class="page-number" href="/myblog/page/5/#content-inner">5</a><a class="extend next" rel="next" href="/myblog/page/3/#content-inner"><i class="fas fa-chevron-right fa-fw"></i></a></div></nav></div><div class="aside-content" id="aside-content"><div class="card-widget card-info"><div class="is-center"><div class="avatar-img"><img src="https://i.loli.net/2021/02/24/5O1day2nriDzjSu.png" onerror="this.onerror=null;this.src='/myblog/img/friend_404.gif'" alt="avatar"/></div><div class="author-info__name">李财</div><div class="author-info__description">开发者</div></div><div class="card-info-data is-center"><div class="card-info-data-item"><a href="/myblog/archives/"><div class="headline">文章</div><div class="length-num">46</div></a></div><div class="card-info-data-item"><a href="/myblog/tags/"><div class="headline">标签</div><div class="length-num">0</div></a></div><div class="card-info-data-item"><a href="/myblog/categories/"><div class="headline">分类</div><div class="length-num">10</div></a></div></div><a id="card-info-btn" target="_blank" rel="noopener" href="https://github.com/xxxxxx"><i class="fab fa-github"></i><span>Follow Me</span></a><div class="card-info-social-icons is-center"><a class="social-icon" href="https://gitee.com/moneylee" target="_blank" title="Gitee"><i class="fab fa-github"></i></a><a class="social-icon" href="mailto:licai_1024@hotmail.com" target="_blank" title=""><i class="fas fa-envelope"></i></a><a class="social-icon" href="/myblog/img/mywechat.jpg" target="_blank" title=""><i class="fab fa-weixin"></i></a></div></div><div class="card-widget card-announcement"><div class="item-headline"><i class="fas fa-bullhorn card-announcement-animation"></i><span>公告</span></div><div class="announcement_content">This is my Blog</div></div><div class="sticky_layout"><div class="card-widget card-recent-post"><div class="item-headline"><i class="fas fa-history"></i><span>最新文章</span></div><div class="aside-list"><div class="aside-list-item"><a class="thumbnail" href="/myblog/2021/08/14/Flutter%E5%8F%91%E5%B8%83%E4%BB%A3%E7%A0%81%E5%88%B0%E4%BB%93%E5%BA%93/" title="Flutter发布代码到PUB仓库"><img src="http://file.moneylee.top/uPic/flutter.png" onerror="this.onerror=null;this.src='/myblog/img/404.jpg'" alt="Flutter发布代码到PUB仓库"/></a><div class="content"><a class="title" href="/myblog/2021/08/14/Flutter%E5%8F%91%E5%B8%83%E4%BB%A3%E7%A0%81%E5%88%B0%E4%BB%93%E5%BA%93/" title="Flutter发布代码到PUB仓库">Flutter发布代码到PUB仓库</a><time datetime="2021-08-14T12:04:03.000Z" title="发表于 2021-08-14 20:04:03">2021-08-14</time></div></div><div class="aside-list-item"><a class="thumbnail" href="/myblog/2020/08/21/iOS%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0/" title="iOS机器学习"><img src="https://tva1.sinaimg.cn/large/006y8mN6ly1g8vl0019wlj31ej0u0x6q.jpg" onerror="this.onerror=null;this.src='/myblog/img/404.jpg'" alt="iOS机器学习"/></a><div class="content"><a class="title" href="/myblog/2020/08/21/iOS%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0/" title="iOS机器学习">iOS机器学习</a><time datetime="2020-08-21T02:04:10.000Z" title="发表于 2020-08-21 10:04:10">2020-08-21</time></div></div><div class="aside-list-item"><a class="thumbnail" href="/myblog/2020/08/20/Docker%E5%9F%BA%E7%A1%80%E7%9F%A5%E8%AF%86%E6%95%B4%E7%90%86/" title="Docker 基础知识整理"><img src="https://tva1.sinaimg.cn/large/006y8mN6ly1g8vl4zhjzuj30qy0e0gyz.jpg" onerror="this.onerror=null;this.src='/myblog/img/404.jpg'" alt="Docker 基础知识整理"/></a><div class="content"><a class="title" href="/myblog/2020/08/20/Docker%E5%9F%BA%E7%A1%80%E7%9F%A5%E8%AF%86%E6%95%B4%E7%90%86/" title="Docker 基础知识整理">Docker 基础知识整理</a><time datetime="2020-08-20T12:12:02.000Z" title="发表于 2020-08-20 20:12:02">2020-08-20</time></div></div><div class="aside-list-item"><a class="thumbnail" href="/myblog/2020/08/19/Flutter/" title="Flutter"><img src="https://tva1.sinaimg.cn/large/006y8mN6ly1g8vl0019wlj31ej0u0x6q.jpg" onerror="this.onerror=null;this.src='/myblog/img/404.jpg'" alt="Flutter"/></a><div class="content"><a class="title" href="/myblog/2020/08/19/Flutter/" title="Flutter">Flutter</a><time datetime="2020-08-19T02:04:03.000Z" title="发表于 2020-08-19 10:04:03">2020-08-19</time></div></div><div class="aside-list-item"><a class="thumbnail" href="/myblog/2020/08/19/iOS%20AR%E5%92%8CARKit4/" title="iOS AR和ARKit4"><img src="https://tva1.sinaimg.cn/large/006y8mN6ly1g8vl0019wlj31ej0u0x6q.jpg" onerror="this.onerror=null;this.src='/myblog/img/404.jpg'" alt="iOS AR和ARKit4"/></a><div class="content"><a class="title" href="/myblog/2020/08/19/iOS%20AR%E5%92%8CARKit4/" title="iOS AR和ARKit4">iOS AR和ARKit4</a><time datetime="2020-08-19T02:04:03.000Z" title="发表于 2020-08-19 10:04:03">2020-08-19</time></div></div></div></div><div class="card-widget card-categories"><div class="item-headline">
            <i class="fas fa-folder-open"></i>
            <span>分类</span>
            <a class="card-more-btn" href="/myblog/categories/" title="查看更多">
    <i class="fas fa-angle-right"></i></a>
            </div>
            <ul class="card-category-list" id="aside-cat-list">
            <li class="card-category-list-item "><a class="card-category-list-link" href="/myblog/categories/Docker/"><span class="card-category-list-name">Docker</span><span class="card-category-list-count">4</span></a></li><li class="card-category-list-item "><a class="card-category-list-link" href="/myblog/categories/Flutter/"><span class="card-category-list-name">Flutter</span><span class="card-category-list-count">1</span></a></li><li class="card-category-list-item "><a class="card-category-list-link" href="/myblog/categories/Java/"><span class="card-category-list-name">Java</span><span class="card-category-list-count">10</span></a></li><li class="card-category-list-item "><a class="card-category-list-link" href="/myblog/categories/Linux/"><span class="card-category-list-name">Linux</span><span class="card-category-list-count">1</span></a></li><li class="card-category-list-item "><a class="card-category-list-link" href="/myblog/categories/iOS/"><span class="card-category-list-name">iOS</span><span class="card-category-list-count">10</span></a></li><li class="card-category-list-item "><a class="card-category-list-link" href="/myblog/categories/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/"><span class="card-category-list-name">人工智能</span><span class="card-category-list-count">7</span></a></li><li class="card-category-list-item "><a class="card-category-list-link" href="/myblog/categories/%E5%BE%AE%E4%BF%A1%E5%B0%8F%E7%A8%8B%E5%BA%8F/"><span class="card-category-list-name">微信小程序</span><span class="card-category-list-count">1</span></a></li><li class="card-category-list-item "><a class="card-category-list-link" href="/myblog/categories/%E6%95%B0%E6%8D%AE%E5%BA%93/"><span class="card-category-list-name">数据库</span><span class="card-category-list-count">3</span></a></li>
            </ul></div><div class="card-widget card-archives"><div class="item-headline"><i class="fas fa-archive"></i><span>归档</span><a class="card-more-btn" href="/myblog/archives/" title="查看更多">
    <i class="fas fa-angle-right"></i></a></div><ul class="card-archive-list"><li class="card-archive-list-item"><a class="card-archive-list-link" href="/myblog/archives/2021/08/"><span class="card-archive-list-date">八月 2021</span><span class="card-archive-list-count">1</span></a></li><li class="card-archive-list-item"><a class="card-archive-list-link" href="/myblog/archives/2020/08/"><span class="card-archive-list-date">八月 2020</span><span class="card-archive-list-count">8</span></a></li><li class="card-archive-list-item"><a class="card-archive-list-link" href="/myblog/archives/2020/07/"><span class="card-archive-list-date">七月 2020</span><span class="card-archive-list-count">2</span></a></li><li class="card-archive-list-item"><a class="card-archive-list-link" href="/myblog/archives/2020/06/"><span class="card-archive-list-date">六月 2020</span><span class="card-archive-list-count">8</span></a></li><li class="card-archive-list-item"><a class="card-archive-list-link" href="/myblog/archives/2020/05/"><span class="card-archive-list-date">五月 2020</span><span class="card-archive-list-count">8</span></a></li><li class="card-archive-list-item"><a class="card-archive-list-link" href="/myblog/archives/2020/02/"><span class="card-archive-list-date">二月 2020</span><span class="card-archive-list-count">2</span></a></li><li class="card-archive-list-item"><a class="card-archive-list-link" href="/myblog/archives/2019/12/"><span class="card-archive-list-date">十二月 2019</span><span class="card-archive-list-count">3</span></a></li><li class="card-archive-list-item"><a class="card-archive-list-link" href="/myblog/archives/2019/11/"><span class="card-archive-list-date">十一月 2019</span><span class="card-archive-list-count">3</span></a></li></ul></div><div class="card-widget card-webinfo"><div class="item-headline"><i class="fas fa-chart-line"></i><span>网站资讯</span></div><div class="webinfo"><div class="webinfo-item"><div class="item-name">文章数目 :</div><div class="item-count">46</div></div><div class="webinfo-item"><div class="item-name">本站访客数 :</div><div class="item-count" id="busuanzi_value_site_uv"></div></div><div class="webinfo-item"><div class="item-name">本站总访问量 :</div><div class="item-count" id="busuanzi_value_site_pv"></div></div><div class="webinfo-item"><div class="item-name">最后更新时间 :</div><div class="item-count" id="last-push-date" data-lastPushDate="2022-02-21T08:43:45.001Z"></div></div></div></div></div></div></main><footer id="footer"><div id="footer-wrap"><div class="copyright">&copy;2020 - 2022 By 李财</div><div class="framework-info"><span>框架 </span><a target="_blank" rel="noopener" href="https://hexo.io">Hexo</a><span class="footer-separator">|</span><span>主题 </span><a target="_blank" rel="noopener" href="https://github.com/jerryc127/hexo-theme-butterfly">Butterfly</a></div></div></footer></div><div id="rightside"><div id="rightside-config-hide"><button id="darkmode" type="button" title="浅色和深色模式转换"><i class="fas fa-adjust"></i></button><button id="hide-aside-btn" type="button" title="单栏和双栏切换"><i class="fas fa-arrows-alt-h"></i></button></div><div id="rightside-config-show"><button id="rightside_config" type="button" title="设置"><i class="fas fa-cog fa-spin"></i></button><button id="go-up" type="button" title="回到顶部"><i class="fas fa-arrow-up"></i></button></div></div><div><script src="/myblog/js/utils.js"></script><script src="/myblog/js/main.js"></script><script src="https://cdn.jsdelivr.net/npm/@fancyapps/ui/dist/fancybox.umd.js"></script><div class="js-pjax"></div><script async data-pjax src="//busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js"></script></div></body></html>